/**
 * @description: 对象数组中某个key 去重
 * @param array 数据源
 *  @param key 根据类型
 * @return T[]
 */
export function uniqueArrayByProperty<T>(array: T[], key: keyof T): T[] {
  return array.reduce((acc, item) => {
    if (!acc.some((existingItem) => existingItem[key] === item[key])) {
      acc.push(item);
    }
    return acc;
  }, [] as T[]);
}

// const obj = [
//   { id: 0, name: "张三", age: 12, sex: 1 },
//   { id: 1, name: "李四", age: 10, sex: 1 },
//   { id: 2, name: "王五", age: 12, sex: 1 },
//   { id: 3, name: "刘柳", age: 12, sex: 0 },
//   { id: 4, name: "七七", age: 11, sex: 0 },
//   { id: 5, name: "小巴", age: 12, sex: 0 },
//   { id: 6, name: "二哈", age: 13, sex: 1 },
//   { id: 7, name: "张狂", age: 15, sex: 1 },
//   { id: 3, name: "刘柳", age: 12, sex: 0 },
//   { id: 4, name: "七七", age: 11, sex: 0 },
// ];
// uniqueArrayByProperty(obj, "name");
